package com.ipc.app.service;

import java.util.List;

import com.ipc.app.exception.IPCBusinessException;
import com.ipc.app.model.Information;
import com.ipc.app.model.Paginator;

/**
 * @author haijie.zhang
 * 
 */
public interface InformationService {

	/**
	 * @param information
	 */
	public void informationRelease(Information information)
			throws IPCBusinessException;

	/**
	 * 拼车详细信息
	 * 
	 * @param informationID
	 * @return
	 */
	public Information getDetailInformation(String informationID);

	/**
	 * @param informationID
	 * @return
	 */
	public Information lockInformation(String informationID);

	/**
	 * @param information
	 */
	public void updateInformation(Information information);

	/**
	 * @param city
	 * @return
	 */
	public Paginator<Information> getInformationByCity(String city,
			String informationType, int pageIndex);

	/**
	 * @param departure
	 * @param destination
	 * @param pageIndex
	 * @return
	 */
	public Paginator<Information> getInformationBetween2City(String departure,
			String destination, String informationType, int pageIndex);

	/**
	 * @param departure
	 * @param destination
	 * @param pageIndex
	 * @return
	 */
	public Paginator<Information> getRoundInformation(Double startX,
			Double endX, Double startY, Double endY, String informationType,
			int pageIndex);

	/**
	 * @param dep_startX
	 * @param dep_endX
	 * @param dep_startY
	 * @param dep_endY
	 * @param des_startX
	 * @param des_endX
	 * @param des_startY
	 * @param des_endY
	 * @param pagerIndex
	 * @return
	 */
	public Paginator<Information> getInformationByDepAndDes(Double dep_startX,
			Double dep_endX, Double dep_startY, Double dep_endY,
			Double des_startX, Double des_endX, Double des_startY,
			Double des_endY, String informationType, int pagerIndex);

	/**
	 * @param userID
	 * @param pageIndex
	 * @return
	 */
	public Paginator<Information> getInformationByUserID(String userID,
			String informationType, int pageIndex);

	/**
	 * @return
	 */
	public void setExpiredInformation(String status);
}
